/**************************************************************************************************
**                                                                                               **
**  文件名称:  dal_output_reg.c                                                                  **
**  版权所有:  CopyRight @ Xiamen Yaxon NetWork CO.LTD. 2017                                     **
**  文件描述:  I/O输出口注册信息表管理                                                           **
**  ===========================================================================================  **
**  创建信息:  | 2017-7-27 | LEON | 创建本模块                                                   **
**  ===========================================================================================  **
**  修改信息:  单击此处添加....                                                                  **
**************************************************************************************************/
#include "dal_include.h"
#include "dal_output_reg.h"

/*************************************************************************************************/
/*                           定义IO注册表                                                        */
/*************************************************************************************************/
#ifdef OUTPUT_DEF
#undef OUTPUT_DEF
#endif

#define OUTPUT_DEF(_PORT_ID_, _GBASE_, _PIN_, _MODE_, _DIRCT_, _LEVEL_)        \
                  {_PORT_ID_, _GBASE_, _PIN_, _MODE_, _DIRCT_, _LEVEL_},
                   
static const OUTPUT_IO_T s_outio_regtbl[] = {
    #include "dal_output_reg.def"
};

/**************************************************************************************************
**  函数名称:  DAL_OUTPUT_GetRegInfo
**  功能描述:  获取对应I/O的注册信息
**  输入参数:  port: 统一编号的I/O
**  输出参数:  无
**  返回参数:  成功返回注册表指针，失败返回0
**************************************************************************************************/
OUTPUT_IO_T const *DAL_OUTPUT_GetRegInfo(OUTPUT_PORT_E port)
{
    if (port >= OUTPUT_PORT_MAX) {
        return 0;
    }

    return (OUTPUT_IO_T const *)(&s_outio_regtbl[port]);
}

/**************************************************************************************************
**  函数名称:  DAL_OUTPUT_GetIOMax
**  功能描述:  获取已经注册过的最大I/O口个数
**  输入参数:  无
**  输出参数:  无
**  返回参数:  已经注册过的最大I/O口个数
**************************************************************************************************/
INT8U DAL_OUTPUT_GetMaxNum(void)
{
    return OUTPUT_PORT_MAX;
}


